﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Team6_Algorithms.AidingClasses
{
    /// <summary>
    /// Made by Marleen Schilt && Alexander Streng
    /// Class used to hold specific Pixel Data like the x - position, the y - position
    /// the color of the pixel, which mean it belongs to ( in case of kmeans ) and its id.
    /// All of these can be set to null, so if its not needed for the algorithm, you can leave it out.
    /// </summary>
    [Serializable()]
    public class PixelPoint
    {
        public int xPos { get; set; }
        public int yPos { get; set; }
        public int RedColor { get; set; }
        public int GreenColor { get; set; }       //make the default getters and Setters
        public int BlueColor { get; set; }
        public Mean mean { get; set; }
        public int id { get; set; }

        /// <summary>
        /// Constructor for the pixelpoint
        /// </summary>
        /// <param name="x">the x - position of the pixelpoint</param>
        /// <param name="y">the y - position of the pixelpoint</param>
        /// <param name="_id">the ID of the pixelpoint in case of binary image 1 equals a forground pixel
        /// and 0 equals a background pixel</param>
        /// <param name="Red">the int red  ( 0 - 255 )</param>
        /// <param name="Green">the int green  ( 0 - 255 )</param>
        /// <param name="Blue">the int blue  ( 0 - 255 )</param>
        /// <param name="m">the mean</param>
        public PixelPoint(int x, int y, int _id, int Red, int Green, int Blue, Mean m)
        {
            xPos = x;
            yPos = y;
            RedColor = Red;
            GreenColor = Green;
            BlueColor = Blue;
            mean = m;
            id = _id;
        }

    }
}
